اوراکل در نسخه 21c دیتاتایپ JSON را ارائه کرد و تا قبل از آن،
دیتای JSON را می توانستیم در ستونهایی با نوع داده CLOB، BLOB و حتی VARCHAR ذخیره کنیم با این اوصاف اگر دیتابیس را به تازگی به نسخه 21c(و نسخ بالاتر) ارتقا دادیم ممکن است بخواهیم دیتای از نوع JSON را به ستونی که دیتاتایپ آن JSON است منتقل کنیم.
در نسخه 23c،
پروسیجری اضافه شده است که می تواند در این فرایند مورد
استفاده قرار بگیرد و بعضا بسیار راهگشا باشد. پروسیجر dbms_json.json_type_convertible_check ستونی را به عنوان ورودی می گیرد و بررسی می کند همه فیلدهای آن ستون حاوی دیتای معتبر با فرمت JSON هستند و اگر در این بررسی خطایی رخ دهد این خطا از طریق جدول json_data_precheck قابل مشاهده است.
در ادامه جدولی را ایجاد می کنیم که ستونی از نوع CLOB دارد قرار است دیتای JSON را در این ستون ذخیره کنیم البته محدودیت is json constraint check را
برای این ستون تنظیم نمی کنیم تا در هنگام ذخیره کردن اطلاعات، دیتای نامعتبر هم در آن قابل درج باشد.
SQL> create table author_tbl( 2 ID number generated always as identity, 3 author_desc clob 4 );
Table created
SQL> insert into author_tbl(author_desc) values('{"NAME" : "Abbas Hamidian","GENDER" : "m","CURRENT_JOB" : "Oracle DBA"}');
1 row inserted
SQL> insert into author_tbl(author_desc) values('{Ali Fazli}');
1 row inserted
SQL> insert into author_tbl(author_desc) values('usefzadeh.com');
1 row inserted
SQL> commit;
Commit complete
قصد داریم اطلاعات ستون Author_Desc را به ستونی از نوع داده JSON منتقل کنیم(در اوراکل 23c). قبل از
جابجایی دیتا، از طریق پروسیجر dbm تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید
برچسب : نویسنده : خنجی niksaleh بازدید : 74 تاريخ : سه شنبه 30 آبان 1402 ساعت: 1:20